home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 February
/
EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso
/
earcd
/
midi
/
gfft.lha
/
gfft-2.03
/
source
/
gfft-2.03-source.lha
/
okmesh.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-01-02
|
2KB
|
65 lines
/***************************************************************************
* Copyright (C) 1994 Charles P. Peterson *
* 4007 Enchanted Sun, San Antonio, Texas 78244-1254 *
* Email: Charles_P_Peterson@fcircus.sat.tx.us *
* *
* This is free software with NO WARRANTY. *
* See gfft.c, or run program itself, for details. *
* Support is available for a fee. *
***************************************************************************
*
* Program: gfft--General FFT analysis
* File: okmesh.c
* Purpose: Generate a mesh vector for smoothing
* Author: Charles Peterson (CPP)
* History: 22-January-1994 CPP; Created.
* Comment: If LogX mode, mesh is logarithmic
*/
#include <math.h>
#include "gfft.h"
#include "settings.h"
double *ok_mesh (double nyquist_frequency, double delta_frequency)
{
double *mesh = NULL;
double delta = 1;
double base_log = 0;
long i;
if (SmoothingSegments != NO_SMOOTHING)
{
mesh = gmalloc (sizeof(double) * SmoothingSegments,
NOTHING_SPECIAL);
if (LogX)
{
delta = log (nyquist_frequency / delta_frequency) /
SmoothingSegments;
base_log = log (delta_frequency);
mesh[0] = delta_frequency;
}
else
{
delta = nyquist_frequency / SmoothingSegments;
mesh[0] = delta;
}
for (i = 2; i < SmoothingSegments; i++)
{
if (LogX)
{
mesh[i-1] = exp (base_log + delta * i);
}
else
{
mesh[i-1] = delta * i;
}
}
mesh[i-1] = nyquist_frequency; /* Last value must be exact */
}
return mesh;
}